package com.jayzers.db;

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.ResultSetHandler;

public class BasicProvider {
	
	/**
	 * 查询操作
	 * @param sql sql语句
	 * @param rsh 结果集接口
	 * @param params 参数列表
	 * @return 查询结果集
	 */
	public <T> T query(String sql, ResultSetHandler<T> rsh, Object... params) {
		T t = null;
		try {
			// 测试数据库连接是否正常
			// 创建一个queryrunner类 -- 等价于jdbc的statement查询器
			QueryRunner qr = new QueryRunner(DBCPDataSource.getDataSource(), true); // 第二个参数是支持sql语句中使用占位符

			// 进行查询操作
			t = qr.query(sql, rsh, params);

		}

		catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	return t;
	}
	
	/**
	 * 修改 表单操作
	 * @param sql
	 * @param rsh
	 * @param params
	 * @return 返回修改个数（操作结果）
	 */
	public <T> int update(String sql,  Object... params) {
		int i = 0;
		try {
			// 测试数据库连接是否正常
			// 创建一个queryrunner类 -- 等价于jdbc的statement查询器
			QueryRunner qr = new QueryRunner(DBCPDataSource.getDataSource(), true); // 第二个参数是支持sql语句中使用占位符

			// 进行查询操作
			i = qr.update(sql, params);

		}

		catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return i;
	}

}
